/**
 * @author 侯非
 * @date 2009-03-20
 * @class EditMoneyStandardWindow
 * @extends Ext.Window
 * @description 编辑薪酬标准窗体
 */
EditMoneyStandardWindow = Ext.extend(Ext.Window, {
	editForm : null, // 变更薪酬标准表单
	eidtGrid : null, // 变更薪酬标准可编辑表格
	/**
	 * 构造方法
	 */
	constructor : function() {
		// 变更薪酬标准表单
		this.editForm = new EditMoneyStandardFormPanel();
		// 变更薪酬标准可编辑表格
		this.eidtGrid = new EditMoneyStandardEditGridPanel();
		/**
		 * 调用父类的构造方法
		 */
		EditMoneyStandardWindow.superclass.constructor.call(this, {
					title : "变更薪酬标准(薪酬标准号不可编辑,双击表格的项目金额单元格即可编辑)",
					width : 600, // 宽度
					minWidth : 600, // 最小宽度
					closeAction : "hide", // 关闭模式为隐藏
					constrain : true, // 不允许窗体超过浏览器
					collapsible : true, // 是否有伸缩按钮
					modal : true, // 模态窗体
					iconCls : "houfei-editicon",
					plain : true,
					items : [this.editForm, this.eidtGrid],
					buttons : [{
								text : "确定变更",
								handler : this.onConfirmUpdate,
								scope : this
							}, {
								text : "关　闭",
								handler : this.onClose,
								scope : this
							}],
					listeners : {
						"hide" : function() {
							this.eidtGrid.getStore().commitChanges();
						}
					}
				});

		// 为当前组件添加自定义事件(确认变更按钮单击事件中的Ajax成功请求回调函数)
		this.addEvents("onMySuccessUpdate");
	},

	/**
	 * 关闭窗体按钮单击事件
	 */
	onClose : function() {
		this.hide();
	},

	/**
	 * 确认变更按钮单击事件
	 */
	onConfirmUpdate : function() {

		// 获取表单里面的值
		var _formValues = Ext.util.JSON.encode(this.editForm.getForm()
				.getValues());
		// 定义一个数组,用来存放修改后的数据的data集
		var _items = [];
		// 获取修改以后的数值(集合)
		var _mo = this.eidtGrid.getStore().modified;
		// 遍历修改以后的Record集
		for (var _i = 0; _i < _mo.length; _i++) {
			_items.push(_mo[_i].data);
		}
		// 获取表格修改以后的值
		var _gridValues = Ext.util.JSON.encode(_items);
		// 确认修改的值
		this.eidtGrid.getStore().commitChanges();
		// 进行ajax请求
		Ext.Ajax.request({
					url : "moneyStandard.do?operator=updateMoneyItemsByStandardId",
					method : "post",
					params : {
						"formValues" : _formValues,
						"gridValues" : _gridValues
					},
					success : this.onSuccessUpdate,
					scope : this
				});
	},

	/**
	 * 确认变更按钮单击事件中的Ajax成功请求回调函数
	 * 
	 * @param {}
	 *            _response XMLHttpRequest的response对象
	 */
	onSuccessUpdate : function(_response) {
		//引发自定义事件onMySuccessUpdate
		this.fireEvent("onMySuccessUpdate", _response);
	}

});